﻿using StackExchange.Redis;

namespace Blog.Utility.Redis
{
	public class RedisConnecting
	{
		//懒加载对象 使用 Lazy<T> 确保连接只在第一次使用时创建
		private readonly Lazy<ConnectionMultiplexer> _lazyConnection;

		//初始化懒加载对象 构造函数，接受连接字符串作为参数
		public RedisConnecting(string connectionString)
        {
			// 初始化 Lazy<ConnectionMultiplexer>，连接字符串用于创建 Redis 连接
			_lazyConnection = new Lazy<ConnectionMultiplexer>(() => ConnectionMultiplexer.Connect(connectionString));
        }

		// 获取 Redis 数据库实例
		public IDatabase GetDatabase() {
			// 返回连接的数据库
			return _lazyConnection.Value.GetDatabase();
        }

		// 释放连接资源
		public void Dispose() {
            if (_lazyConnection.IsValueCreated)
            {
				_lazyConnection.Value.Dispose();
			}
        }
    }
}
